import { Component, Prop, Vue } from 'vue-property-decorator'
import InfoBlock from '@profile/util/info_block/Index.vue';
import { UserHiddenRoots, User } from '@entity/user';
import axios from '@axios/websocket'
import { AddFriendRequest } from '@entity/add_user';

@Component({
    components: {
        InfoBlock
    }
})
export class OtherUserInfo extends Vue {

    /** 用户 */
    @Prop({
        default: () => new User()
    })
    private user: User;

    /** 用户隐藏权限 */
    @Prop({
        default: () => new UserHiddenRoots()
    })
    private roots: UserHiddenRoots;

    /**
     * 有一个尚未被隐藏, 就应显示 “联系方式” 模块
     * 反之如果所有信息都被隐藏, 那么 “联系方式” 模块也应直接隐藏
     */
    private contactMethod(): Boolean {
        return this.roots.email || this.roots.wechat || this.roots.tel || this.roots.qq;
    }

    /**
     * 有一个尚未被隐藏, 就应显示 “教育背景” 模块
     * 反之如果所有信息都被隐藏, 那么 “教育背景” 模块也应直接隐藏
     */
    private eduBackground(): Boolean {
        return this.roots.major || this.roots.school || this.roots.sid || this.roots.entryYear || this.roots.realName;
    }

    /**
     * 添加好友
     */
    private addFriend(): void {
        let me: User = this.$store.getters.me();
        let request: AddFriendRequest = new AddFriendRequest(me.id, me.name, 0, "我是傻批", null);
        axios.add.request(this.user, request);
    }

}